package org.example.analysis.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Java参数信息
 */
@Data
@Accessors(chain = true)
public class JavaParameterInfo {
    /**
     * 主键ID
     */
    private Long id;
    
    /**
     * 所属方法ID
     */
    private Long methodId;
    
    /**
     * 参数名
     */
    private String parameterName;
    
    /**
     * 参数类型
     */
    private String parameterType;
    
    /**
     * 参数注释
     */
    private String parameterComment;
    
    /**
     * 默认值
     */
    private String defaultValue;
    
    /**
     * 参数位置（从0开始）
     */
    private int position;
    
    /**
     * 是否是可变参数
     */
    private boolean isVarArgs;
    
    /**
     * 最后修改时间
     */
    private Date lastModifiedTime;
    
    /**
     * 最后修改人
     */
    private String lastModifiedBy;
    
    /**
     * 创建时间
     */
    private Date createdAt;
    
    /**
     * 是否可刷新
     */
    private Boolean refreshable = true;
    
    /**
     * 修饰符列表
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> modifiers = new ArrayList<>();
    
    /**
     * 注解列表
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> annotations = new ArrayList<>();
} 